const promise1 = () => Promise.resolve(1);
const promise2 = () =>
  new Promise(resolve => {
    setTimeout(() => {
      resolve(2);
    }, 2000);
  });
const promise3 = () =>
  new Promise(resolve => {
    setTimeout(() => {
      resolve(3);
    }, 3000);
  });

const promiseList = [promise1, promise2, promise3];

function promiseChain(promiseList) {
  // 定义异步函数处理链式调用
  const executeSequentially = async () => {
    for (const promiseFn of promiseList) {
      // 等待当前 Promise 执行完成（串行关键）
      const result = await promiseFn();
      console.log(result); // 输出结果（1、2、3 按顺序）
    }
  };

  // 返回异步函数的 Promise，用于触发最终回调
  return executeSequentially();
}

promiseChain(promiseList).then(() => {
  console.log('所有 Promise 执行完毕。');
});

// 1 立即输出
// 2 2s后输出
// 3 3s后输出